From d3997b960eb6d56c1b1e129149f3b608e4b569dd Mon Sep 17 00:00:00 2001 From: "cl349@firebug.cl.cam.ac.uk" Date: Thu, 4 May 2006 17:44:14 +0100 Subject: [PATCH] Linux: upgrade patches to 2.6.16.13. Signed-off-by: Christian Limpach --HG-- rename : patches/linux-2.6.16/device_bind.patch => patches/linux-2.6.16.13/device_bind.patch rename : patches/linux-2.6.16/i386-mach-io-check-nmi.patch => patches/linux-2.6.16.13/i386-mach-io-check-nmi.patch rename : patches/linux-2.6.16/net-csum.patch => patches/linux-2.6.16.13/net-csum.patch rename : patches/linux-2.6.16/pmd-shared.patch => patches/linux-2.6.16.13/pmd-shared.patch rename : patches/linux-2.6.16/rename-TSS_sysenter_esp0-SYSENTER_stack_esp0.patch => patches/linux-2.6.16.13/rename-TSS_sysenter_esp0-SYSENTER_stack_esp0.patch rename : patches/linux-2.6.16/smp-alts.patch => patches/linux-2.6.16.13/smp-alts.patch rename : patches/linux-2.6.16/x86-increase-interrupt-vector-range.patch => patches/linux-2.6.16.13/x86-increase-interrupt-vector-range.patch rename : patches/linux-2.6.16/xenoprof-generic.patch => patches/linux-2.6.16.13/xenoprof-generic.patch --- .../device_bind.patch | 5 +- .../i386-mach-io-check-nmi.patch | 12 +- .../net-csum.patch | 28 ++--- .../pmd-shared.patch | 24 ++-- ...SS_sysenter_esp0-SYSENTER_stack_esp0.patch | 13 +-- .../smp-alts.patch | 72 ++++++------ .../x86-increase-interrupt-vector-range.patch | 89 +++++++++++++++ .../xenoprof-generic.patch | 48 ++++---- .../x86-increase-interrupt-vector-range.patch | 107 ------------------ 9 files changed, 190 insertions(+), 208 deletions(-) rename patches/{linux-2.6.16 => linux-2.6.16.13}/device_bind.patch (56%) rename patches/{linux-2.6.16 => linux-2.6.16.13}/i386-mach-io-check-nmi.patch (62%) rename patches/{linux-2.6.16 => linux-2.6.16.13}/net-csum.patch (57%) rename patches/{linux-2.6.16 => linux-2.6.16.13}/pmd-shared.patch (71%) rename patches/{linux-2.6.16 => linux-2.6.16.13}/rename-TSS_sysenter_esp0-SYSENTER_stack_esp0.patch (66%) rename patches/{linux-2.6.16 => linux-2.6.16.13}/smp-alts.patch (84%) create mode 100644 patches/linux-2.6.16.13/x86-increase-interrupt-vector-range.patch rename patches/{linux-2.6.16 => linux-2.6.16.13}/xenoprof-generic.patch (83%) delete mode 100644 patches/linux-2.6.16/x86-increase-interrupt-vector-range.patch diff --git a/patches/linux-2.6.16/device_bind.patch b/patches/linux-2.6.16.13/device_bind.patch similarity index 56% rename from patches/linux-2.6.16/device_bind.patch rename to patches/linux-2.6.16.13/device_bind.patch index 34bc4edeb0..331234c89f 100644 --- a/patches/linux-2.6.16/device_bind.patch +++ b/patches/linux-2.6.16.13/device_bind.patch @@ -1,5 +1,6 @@ ---- linux-2.6.16/drivers/base/bus.c 2006-03-16 10:50:20.000000000 -0500 -+++ linux-2.6.16/drivers/base/bus.c 2006-03-16 11:02:08.000000000 -0500 +diff -pruN ../pristine-linux-2.6.16.13/drivers/base/bus.c ./drivers/base/bus.c +--- ../pristine-linux-2.6.16.13/drivers/base/bus.c 2006-05-02 22:38:44.000000000 +0100 ++++ ./drivers/base/bus.c 2006-05-04 17:41:30.000000000 +0100 @@ -188,6 +188,11 @@ static ssize_t driver_bind(struct device up(&dev->sem); if (dev->parent) diff --git a/patches/linux-2.6.16/i386-mach-io-check-nmi.patch b/patches/linux-2.6.16.13/i386-mach-io-check-nmi.patch similarity index 62% rename from patches/linux-2.6.16/i386-mach-io-check-nmi.patch rename to patches/linux-2.6.16.13/i386-mach-io-check-nmi.patch index 874d0a2b15..424e5483ad 100644 --- a/patches/linux-2.6.16/i386-mach-io-check-nmi.patch +++ b/patches/linux-2.6.16.13/i386-mach-io-check-nmi.patch @@ -1,6 +1,6 @@ -diff -pruN ../pristine-linux-2.6.16/arch/i386/kernel/traps.c ./arch/i386/kernel/traps.c ---- ../pristine-linux-2.6.16/arch/i386/kernel/traps.c 2006-03-20 05:53:29.000000000 +0000 -+++ ./arch/i386/kernel/traps.c 2006-03-20 19:38:17.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/arch/i386/kernel/traps.c ./arch/i386/kernel/traps.c +--- ../pristine-linux-2.6.16.13/arch/i386/kernel/traps.c 2006-05-02 22:38:44.000000000 +0100 ++++ ./arch/i386/kernel/traps.c 2006-05-04 17:41:34.000000000 +0100 @@ -567,18 +567,11 @@ static void mem_parity_error(unsigned ch static void io_check_error(unsigned char reason, struct pt_regs * regs) @@ -21,9 +21,9 @@ diff -pruN ../pristine-linux-2.6.16/arch/i386/kernel/traps.c ./arch/i386/kernel/ } static void unknown_nmi_error(unsigned char reason, struct pt_regs * regs) -diff -pruN ../pristine-linux-2.6.16/include/asm-i386/mach-default/mach_traps.h ./include/asm-i386/mach-default/mach_traps.h ---- ../pristine-linux-2.6.16/include/asm-i386/mach-default/mach_traps.h 2006-03-20 05:53:29.000000000 +0000 -+++ ./include/asm-i386/mach-default/mach_traps.h 2006-03-20 19:38:17.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/include/asm-i386/mach-default/mach_traps.h ./include/asm-i386/mach-default/mach_traps.h +--- ../pristine-linux-2.6.16.13/include/asm-i386/mach-default/mach_traps.h 2006-05-02 22:38:44.000000000 +0100 ++++ ./include/asm-i386/mach-default/mach_traps.h 2006-05-04 17:41:34.000000000 +0100 @@ -15,6 +15,18 @@ static inline void clear_mem_error(unsig outb(reason, 0x61); } diff --git a/patches/linux-2.6.16/net-csum.patch b/patches/linux-2.6.16.13/net-csum.patch similarity index 57% rename from patches/linux-2.6.16/net-csum.patch rename to patches/linux-2.6.16.13/net-csum.patch index 6543dcc47b..44ce246793 100644 --- a/patches/linux-2.6.16/net-csum.patch +++ b/patches/linux-2.6.16.13/net-csum.patch @@ -1,6 +1,6 @@ -diff -pruN ../pristine-linux-2.6.16/net/ipv4/netfilter/ip_nat_proto_tcp.c ./net/ipv4/netfilter/ip_nat_proto_tcp.c ---- ../pristine-linux-2.6.16/net/ipv4/netfilter/ip_nat_proto_tcp.c 2006-03-20 05:53:29.000000000 +0000 -+++ ./net/ipv4/netfilter/ip_nat_proto_tcp.c 2006-03-20 19:38:19.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/net/ipv4/netfilter/ip_nat_proto_tcp.c ./net/ipv4/netfilter/ip_nat_proto_tcp.c +--- ../pristine-linux-2.6.16.13/net/ipv4/netfilter/ip_nat_proto_tcp.c 2006-05-02 22:38:44.000000000 +0100 ++++ ./net/ipv4/netfilter/ip_nat_proto_tcp.c 2006-05-04 17:41:37.000000000 +0100 @@ -129,10 +129,14 @@ tcp_manip_pkt(struct sk_buff **pskb, if (hdrsize < sizeof(*hdr)) return 1; @@ -17,9 +17,9 @@ diff -pruN ../pristine-linux-2.6.16/net/ipv4/netfilter/ip_nat_proto_tcp.c ./net/ return 1; } -diff -pruN ../pristine-linux-2.6.16/net/ipv4/netfilter/ip_nat_proto_udp.c ./net/ipv4/netfilter/ip_nat_proto_udp.c ---- ../pristine-linux-2.6.16/net/ipv4/netfilter/ip_nat_proto_udp.c 2006-03-20 05:53:29.000000000 +0000 -+++ ./net/ipv4/netfilter/ip_nat_proto_udp.c 2006-03-20 19:38:19.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/net/ipv4/netfilter/ip_nat_proto_udp.c ./net/ipv4/netfilter/ip_nat_proto_udp.c +--- ../pristine-linux-2.6.16.13/net/ipv4/netfilter/ip_nat_proto_udp.c 2006-05-02 22:38:44.000000000 +0100 ++++ ./net/ipv4/netfilter/ip_nat_proto_udp.c 2006-05-04 17:41:37.000000000 +0100 @@ -113,11 +113,16 @@ udp_manip_pkt(struct sk_buff **pskb, newport = tuple->dst.u.udp.port; portptr = &hdr->dest; @@ -39,19 +39,19 @@ diff -pruN ../pristine-linux-2.6.16/net/ipv4/netfilter/ip_nat_proto_udp.c ./net/ *portptr = newport; return 1; } -diff -r 601fa226a761 net/ipv4/xfrm4_output.c ---- a/net/ipv4/xfrm4_output.c Wed Apr 19 18:52:30 2006 -+++ b/net/ipv4/xfrm4_output.c Thu Apr 20 15:49:40 2006 -@@ -16,6 +16,8 @@ - #include +diff -pruN ../pristine-linux-2.6.16.13/net/ipv4/xfrm4_output.c ./net/ipv4/xfrm4_output.c +--- ../pristine-linux-2.6.16.13/net/ipv4/xfrm4_output.c 2006-05-02 22:38:44.000000000 +0100 ++++ ./net/ipv4/xfrm4_output.c 2006-05-04 17:41:37.000000000 +0100 +@@ -17,6 +17,8 @@ #include #include -+ -+extern int skb_checksum_setup(struct sk_buff *skb); ++extern int skb_checksum_setup(struct sk_buff *skb); ++ /* Add encapsulation header. * -@@ -103,6 +105,10 @@ + * In transport mode, the IP header will be moved forward to make space +@@ -103,6 +105,10 @@ static int xfrm4_output_one(struct sk_bu struct xfrm_state *x = dst->xfrm; int err; diff --git a/patches/linux-2.6.16/pmd-shared.patch b/patches/linux-2.6.16.13/pmd-shared.patch similarity index 71% rename from patches/linux-2.6.16/pmd-shared.patch rename to patches/linux-2.6.16.13/pmd-shared.patch index 7ceba997ba..2af0a737f4 100644 --- a/patches/linux-2.6.16/pmd-shared.patch +++ b/patches/linux-2.6.16.13/pmd-shared.patch @@ -1,6 +1,6 @@ -diff -pruN ../pristine-linux-2.6.16/arch/i386/mm/pageattr.c ./arch/i386/mm/pageattr.c ---- ../pristine-linux-2.6.16/arch/i386/mm/pageattr.c 2006-03-20 05:53:29.000000000 +0000 -+++ ./arch/i386/mm/pageattr.c 2006-03-20 19:38:23.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/arch/i386/mm/pageattr.c ./arch/i386/mm/pageattr.c +--- ../pristine-linux-2.6.16.13/arch/i386/mm/pageattr.c 2006-05-02 22:38:44.000000000 +0100 ++++ ./arch/i386/mm/pageattr.c 2006-05-04 17:41:40.000000000 +0100 @@ -78,7 +78,7 @@ static void set_pmd_pte(pte_t *kpte, uns unsigned long flags; @@ -10,9 +10,9 @@ diff -pruN ../pristine-linux-2.6.16/arch/i386/mm/pageattr.c ./arch/i386/mm/pagea return; spin_lock_irqsave(&pgd_lock, flags); -diff -pruN ../pristine-linux-2.6.16/arch/i386/mm/pgtable.c ./arch/i386/mm/pgtable.c ---- ../pristine-linux-2.6.16/arch/i386/mm/pgtable.c 2006-03-20 05:53:29.000000000 +0000 -+++ ./arch/i386/mm/pgtable.c 2006-03-20 19:38:23.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/arch/i386/mm/pgtable.c ./arch/i386/mm/pgtable.c +--- ../pristine-linux-2.6.16.13/arch/i386/mm/pgtable.c 2006-05-02 22:38:44.000000000 +0100 ++++ ./arch/i386/mm/pgtable.c 2006-05-04 17:41:40.000000000 +0100 @@ -215,9 +215,10 @@ void pgd_ctor(void *pgd, kmem_cache_t *c spin_lock_irqsave(&pgd_lock, flags); } @@ -85,9 +85,9 @@ diff -pruN ../pristine-linux-2.6.16/arch/i386/mm/pgtable.c ./arch/i386/mm/pgtabl /* in the non-PAE case, free_pgtables() clears user pgd entries */ kmem_cache_free(pgd_cache, pgd); } -diff -pruN ../pristine-linux-2.6.16/include/asm-i386/pgtable-2level-defs.h ./include/asm-i386/pgtable-2level-defs.h ---- ../pristine-linux-2.6.16/include/asm-i386/pgtable-2level-defs.h 2006-03-20 05:53:29.000000000 +0000 -+++ ./include/asm-i386/pgtable-2level-defs.h 2006-03-20 19:38:23.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/include/asm-i386/pgtable-2level-defs.h ./include/asm-i386/pgtable-2level-defs.h +--- ../pristine-linux-2.6.16.13/include/asm-i386/pgtable-2level-defs.h 2006-05-02 22:38:44.000000000 +0100 ++++ ./include/asm-i386/pgtable-2level-defs.h 2006-05-04 17:41:40.000000000 +0100 @@ -1,6 +1,8 @@ #ifndef _I386_PGTABLE_2LEVEL_DEFS_H #define _I386_PGTABLE_2LEVEL_DEFS_H @@ -97,9 +97,9 @@ diff -pruN ../pristine-linux-2.6.16/include/asm-i386/pgtable-2level-defs.h ./inc /* * traditional i386 two-level paging structure: */ -diff -pruN ../pristine-linux-2.6.16/include/asm-i386/pgtable-3level-defs.h ./include/asm-i386/pgtable-3level-defs.h ---- ../pristine-linux-2.6.16/include/asm-i386/pgtable-3level-defs.h 2006-03-20 05:53:29.000000000 +0000 -+++ ./include/asm-i386/pgtable-3level-defs.h 2006-03-20 19:38:23.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/include/asm-i386/pgtable-3level-defs.h ./include/asm-i386/pgtable-3level-defs.h +--- ../pristine-linux-2.6.16.13/include/asm-i386/pgtable-3level-defs.h 2006-05-02 22:38:44.000000000 +0100 ++++ ./include/asm-i386/pgtable-3level-defs.h 2006-05-04 17:41:40.000000000 +0100 @@ -1,6 +1,8 @@ #ifndef _I386_PGTABLE_3LEVEL_DEFS_H #define _I386_PGTABLE_3LEVEL_DEFS_H diff --git a/patches/linux-2.6.16/rename-TSS_sysenter_esp0-SYSENTER_stack_esp0.patch b/patches/linux-2.6.16.13/rename-TSS_sysenter_esp0-SYSENTER_stack_esp0.patch similarity index 66% rename from patches/linux-2.6.16/rename-TSS_sysenter_esp0-SYSENTER_stack_esp0.patch rename to patches/linux-2.6.16.13/rename-TSS_sysenter_esp0-SYSENTER_stack_esp0.patch index 7f99a397ab..0f318dee73 100644 --- a/patches/linux-2.6.16/rename-TSS_sysenter_esp0-SYSENTER_stack_esp0.patch +++ b/patches/linux-2.6.16.13/rename-TSS_sysenter_esp0-SYSENTER_stack_esp0.patch @@ -1,8 +1,7 @@ -Index: sysenter/linux-2.6-xen-sparse/arch/i386/kernel/entry.S -=================================================================== ---- linux-2.6.16.orig/arch/i386/kernel/entry.S 2006-04-05 11:12:51.000000000 +0100 -+++ linux-2.6.16/arch/i386/kernel/entry.S 2006-04-05 11:12:52.000000000 +0100 -@@ -177,7 +177,7 @@ +diff -pruN ../pristine-linux-2.6.16.13/arch/i386/kernel/entry.S ./arch/i386/kernel/entry.S +--- ../pristine-linux-2.6.16.13/arch/i386/kernel/entry.S 2006-05-02 22:38:44.000000000 +0100 ++++ ./arch/i386/kernel/entry.S 2006-05-04 17:41:44.000000000 +0100 +@@ -177,7 +177,7 @@ need_resched: # sysenter call handler stub ENTRY(sysenter_entry) @@ -11,7 +10,7 @@ Index: sysenter/linux-2.6-xen-sparse/arch/i386/kernel/entry.S sysenter_past_esp: sti pushl $(__USER_DS) -@@ -492,7 +492,7 @@ +@@ -492,7 +492,7 @@ device_not_available_emulate: * that sets up the real kernel stack. Check here, since we can't * allow the wrong stack to be used. * @@ -20,7 +19,7 @@ Index: sysenter/linux-2.6-xen-sparse/arch/i386/kernel/entry.S * already pushed 3 words if it hits on the sysenter instruction: * eflags, cs and eip. * -@@ -504,7 +504,7 @@ +@@ -504,7 +504,7 @@ device_not_available_emulate: cmpw $__KERNEL_CS,4(%esp); \ jne ok; \ label: \ diff --git a/patches/linux-2.6.16/smp-alts.patch b/patches/linux-2.6.16.13/smp-alts.patch similarity index 84% rename from patches/linux-2.6.16/smp-alts.patch rename to patches/linux-2.6.16.13/smp-alts.patch index 86caa0e239..0e0d597da9 100644 --- a/patches/linux-2.6.16/smp-alts.patch +++ b/patches/linux-2.6.16.13/smp-alts.patch @@ -1,6 +1,6 @@ -diff -pruN ../pristine-linux-2.6.16/arch/i386/Kconfig ./arch/i386/Kconfig ---- ../pristine-linux-2.6.16/arch/i386/Kconfig 2006-03-20 05:53:29.000000000 +0000 -+++ ./arch/i386/Kconfig 2006-03-20 19:38:27.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/arch/i386/Kconfig ./arch/i386/Kconfig +--- ../pristine-linux-2.6.16.13/arch/i386/Kconfig 2006-05-02 22:38:44.000000000 +0100 ++++ ./arch/i386/Kconfig 2006-05-04 17:41:45.000000000 +0100 @@ -202,6 +202,19 @@ config SMP If you don't know what to do here, say N. @@ -21,9 +21,9 @@ diff -pruN ../pristine-linux-2.6.16/arch/i386/Kconfig ./arch/i386/Kconfig config NR_CPUS int "Maximum number of CPUs (2-255)" range 2 255 -diff -pruN ../pristine-linux-2.6.16/arch/i386/kernel/Makefile ./arch/i386/kernel/Makefile ---- ../pristine-linux-2.6.16/arch/i386/kernel/Makefile 2006-03-20 05:53:29.000000000 +0000 -+++ ./arch/i386/kernel/Makefile 2006-03-20 19:38:27.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/arch/i386/kernel/Makefile ./arch/i386/kernel/Makefile +--- ../pristine-linux-2.6.16.13/arch/i386/kernel/Makefile 2006-05-02 22:38:44.000000000 +0100 ++++ ./arch/i386/kernel/Makefile 2006-05-04 17:41:45.000000000 +0100 @@ -37,6 +37,7 @@ obj-$(CONFIG_EFI) += efi.o efi_stub.o obj-$(CONFIG_DOUBLEFAULT) += doublefault.o obj-$(CONFIG_VM86) += vm86.o @@ -32,9 +32,9 @@ diff -pruN ../pristine-linux-2.6.16/arch/i386/kernel/Makefile ./arch/i386/kernel EXTRA_AFLAGS := -traditional -diff -pruN ../pristine-linux-2.6.16/arch/i386/kernel/smpalts.c ./arch/i386/kernel/smpalts.c ---- ../pristine-linux-2.6.16/arch/i386/kernel/smpalts.c 1970-01-01 01:00:00.000000000 +0100 -+++ ./arch/i386/kernel/smpalts.c 2006-03-20 19:38:27.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/arch/i386/kernel/smpalts.c ./arch/i386/kernel/smpalts.c +--- ../pristine-linux-2.6.16.13/arch/i386/kernel/smpalts.c 1970-01-01 01:00:00.000000000 +0100 ++++ ./arch/i386/kernel/smpalts.c 2006-05-04 17:41:45.000000000 +0100 @@ -0,0 +1,85 @@ +#include +#include @@ -121,9 +121,9 @@ diff -pruN ../pristine-linux-2.6.16/arch/i386/kernel/smpalts.c ./arch/i386/kerne + asm volatile ("jmp 1f\n1:"); + mb(); +} -diff -pruN ../pristine-linux-2.6.16/arch/i386/kernel/smpboot.c ./arch/i386/kernel/smpboot.c ---- ../pristine-linux-2.6.16/arch/i386/kernel/smpboot.c 2006-03-20 05:53:29.000000000 +0000 -+++ ./arch/i386/kernel/smpboot.c 2006-03-20 19:38:27.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/arch/i386/kernel/smpboot.c ./arch/i386/kernel/smpboot.c +--- ../pristine-linux-2.6.16.13/arch/i386/kernel/smpboot.c 2006-05-02 22:38:44.000000000 +0100 ++++ ./arch/i386/kernel/smpboot.c 2006-05-04 17:41:45.000000000 +0100 @@ -1218,6 +1218,11 @@ static void __init smp_boot_cpus(unsigne if (max_cpus <= cpucount+1) continue; @@ -148,9 +148,9 @@ diff -pruN ../pristine-linux-2.6.16/arch/i386/kernel/smpboot.c ./arch/i386/kerne local_irq_enable(); per_cpu(cpu_state, cpu) = CPU_UP_PREPARE; /* Unleash the CPU! */ -diff -pruN ../pristine-linux-2.6.16/arch/i386/kernel/vmlinux.lds.S ./arch/i386/kernel/vmlinux.lds.S ---- ../pristine-linux-2.6.16/arch/i386/kernel/vmlinux.lds.S 2006-03-20 05:53:29.000000000 +0000 -+++ ./arch/i386/kernel/vmlinux.lds.S 2006-03-20 19:38:27.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/arch/i386/kernel/vmlinux.lds.S ./arch/i386/kernel/vmlinux.lds.S +--- ../pristine-linux-2.6.16.13/arch/i386/kernel/vmlinux.lds.S 2006-05-02 22:38:44.000000000 +0100 ++++ ./arch/i386/kernel/vmlinux.lds.S 2006-05-04 17:41:45.000000000 +0100 @@ -34,6 +34,13 @@ SECTIONS __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) { *(__ex_table) } __stop___ex_table = .; @@ -165,9 +165,9 @@ diff -pruN ../pristine-linux-2.6.16/arch/i386/kernel/vmlinux.lds.S ./arch/i386/k RODATA /* writeable */ -diff -pruN ../pristine-linux-2.6.16/include/asm-i386/atomic.h ./include/asm-i386/atomic.h ---- ../pristine-linux-2.6.16/include/asm-i386/atomic.h 2006-03-20 05:53:29.000000000 +0000 -+++ ./include/asm-i386/atomic.h 2006-03-20 19:38:27.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/include/asm-i386/atomic.h ./include/asm-i386/atomic.h +--- ../pristine-linux-2.6.16.13/include/asm-i386/atomic.h 2006-05-02 22:38:44.000000000 +0100 ++++ ./include/asm-i386/atomic.h 2006-05-04 17:41:45.000000000 +0100 @@ -4,18 +4,13 @@ #include #include @@ -188,9 +188,9 @@ diff -pruN ../pristine-linux-2.6.16/include/asm-i386/atomic.h ./include/asm-i386 /* * Make sure gcc doesn't try to be clever and move things around * on us. We need to use _exactly_ the address the user gave us, -diff -pruN ../pristine-linux-2.6.16/include/asm-i386/bitops.h ./include/asm-i386/bitops.h ---- ../pristine-linux-2.6.16/include/asm-i386/bitops.h 2006-03-20 05:53:29.000000000 +0000 -+++ ./include/asm-i386/bitops.h 2006-03-20 19:38:27.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/include/asm-i386/bitops.h ./include/asm-i386/bitops.h +--- ../pristine-linux-2.6.16.13/include/asm-i386/bitops.h 2006-05-02 22:38:44.000000000 +0100 ++++ ./include/asm-i386/bitops.h 2006-05-04 17:41:45.000000000 +0100 @@ -7,6 +7,7 @@ #include @@ -266,9 +266,9 @@ diff -pruN ../pristine-linux-2.6.16/include/asm-i386/bitops.h ./include/asm-i386 "btcl %2,%1\n\tsbbl %0,%0" :"=r" (oldbit),"+m" (ADDR) :"Ir" (nr) : "memory"); -diff -pruN ../pristine-linux-2.6.16/include/asm-i386/futex.h ./include/asm-i386/futex.h ---- ../pristine-linux-2.6.16/include/asm-i386/futex.h 2006-03-20 05:53:29.000000000 +0000 -+++ ./include/asm-i386/futex.h 2006-03-20 19:38:27.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/include/asm-i386/futex.h ./include/asm-i386/futex.h +--- ../pristine-linux-2.6.16.13/include/asm-i386/futex.h 2006-05-02 22:38:44.000000000 +0100 ++++ ./include/asm-i386/futex.h 2006-05-04 17:41:45.000000000 +0100 @@ -28,7 +28,7 @@ "1: movl %2, %0\n\ movl %0, %3\n" \ @@ -287,9 +287,9 @@ diff -pruN ../pristine-linux-2.6.16/include/asm-i386/futex.h ./include/asm-i386/ oldval, uaddr, oparg); break; case FUTEX_OP_OR: -diff -pruN ../pristine-linux-2.6.16/include/asm-i386/rwsem.h ./include/asm-i386/rwsem.h ---- ../pristine-linux-2.6.16/include/asm-i386/rwsem.h 2006-03-20 05:53:29.000000000 +0000 -+++ ./include/asm-i386/rwsem.h 2006-03-20 19:38:27.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/include/asm-i386/rwsem.h ./include/asm-i386/rwsem.h +--- ../pristine-linux-2.6.16.13/include/asm-i386/rwsem.h 2006-05-02 22:38:44.000000000 +0100 ++++ ./include/asm-i386/rwsem.h 2006-05-04 17:41:45.000000000 +0100 @@ -40,6 +40,7 @@ #include @@ -370,9 +370,9 @@ diff -pruN ../pristine-linux-2.6.16/include/asm-i386/rwsem.h ./include/asm-i386/ : "+r"(tmp), "=m"(sem->count) : "r"(sem), "m"(sem->count) : "memory"); -diff -pruN ../pristine-linux-2.6.16/include/asm-i386/smp_alt.h ./include/asm-i386/smp_alt.h ---- ../pristine-linux-2.6.16/include/asm-i386/smp_alt.h 1970-01-01 01:00:00.000000000 +0100 -+++ ./include/asm-i386/smp_alt.h 2006-03-20 19:38:27.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/include/asm-i386/smp_alt.h ./include/asm-i386/smp_alt.h +--- ../pristine-linux-2.6.16.13/include/asm-i386/smp_alt.h 1970-01-01 01:00:00.000000000 +0100 ++++ ./include/asm-i386/smp_alt.h 2006-05-04 17:41:45.000000000 +0100 @@ -0,0 +1,32 @@ +#ifndef __ASM_SMP_ALT_H__ +#define __ASM_SMP_ALT_H__ @@ -406,9 +406,9 @@ diff -pruN ../pristine-linux-2.6.16/include/asm-i386/smp_alt.h ./include/asm-i38 +#endif + +#endif /* __ASM_SMP_ALT_H__ */ -diff -pruN ../pristine-linux-2.6.16/include/asm-i386/spinlock.h ./include/asm-i386/spinlock.h ---- ../pristine-linux-2.6.16/include/asm-i386/spinlock.h 2006-03-20 05:53:29.000000000 +0000 -+++ ./include/asm-i386/spinlock.h 2006-03-20 19:38:27.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/include/asm-i386/spinlock.h ./include/asm-i386/spinlock.h +--- ../pristine-linux-2.6.16.13/include/asm-i386/spinlock.h 2006-05-02 22:38:44.000000000 +0100 ++++ ./include/asm-i386/spinlock.h 2006-05-04 17:41:45.000000000 +0100 @@ -6,6 +6,7 @@ #include #include @@ -488,9 +488,9 @@ diff -pruN ../pristine-linux-2.6.16/include/asm-i386/spinlock.h ./include/asm-i3 : "=m" (rw->lock) : : "memory"); } -diff -pruN ../pristine-linux-2.6.16/include/asm-i386/system.h ./include/asm-i386/system.h ---- ../pristine-linux-2.6.16/include/asm-i386/system.h 2006-03-20 05:53:29.000000000 +0000 -+++ ./include/asm-i386/system.h 2006-03-20 19:38:27.000000000 +0000 +diff -pruN ../pristine-linux-2.6.16.13/include/asm-i386/system.h ./include/asm-i386/system.h +--- ../pristine-linux-2.6.16.13/include/asm-i386/system.h 2006-05-02 22:38:44.000000000 +0100 ++++ ./include/asm-i386/system.h 2006-05-04 17:41:45.000000000 +0100 @@ -5,7 +5,7 @@ #include #include diff --git a/patches/linux-2.6.16.13/x86-increase-interrupt-vector-range.patch b/patches/linux-2.6.16.13/x86-increase-interrupt-vector-range.patch new file mode 100644 index 0000000000..1bff3be41e --- /dev/null +++ b/patches/linux-2.6.16.13/x86-increase-interrupt-vector-range.patch @@ -0,0 +1,89 @@ +diff -pruN ../pristine-linux-2.6.16.13/arch/i386/kernel/entry.S ./arch/i386/kernel/entry.S +--- ../pristine-linux-2.6.16.13/arch/i386/kernel/entry.S 2006-05-02 22:38:44.000000000 +0100 ++++ ./arch/i386/kernel/entry.S 2006-05-04 17:41:49.000000000 +0100 +@@ -406,7 +406,7 @@ vector=0 + ENTRY(irq_entries_start) + .rept NR_IRQS + ALIGN +-1: pushl $vector-256 ++1: pushl $~(vector) + jmp common_interrupt + .data + .long 1b +@@ -423,7 +423,7 @@ common_interrupt: + + #define BUILD_INTERRUPT(name, nr) \ + ENTRY(name) \ +- pushl $nr-256; \ ++ pushl $~(nr); \ + SAVE_ALL \ + movl %esp,%eax; \ + call smp_/**/name; \ +diff -pruN ../pristine-linux-2.6.16.13/arch/i386/kernel/irq.c ./arch/i386/kernel/irq.c +--- ../pristine-linux-2.6.16.13/arch/i386/kernel/irq.c 2006-05-02 22:38:44.000000000 +0100 ++++ ./arch/i386/kernel/irq.c 2006-05-04 17:41:49.000000000 +0100 +@@ -53,8 +53,8 @@ static union irq_ctx *softirq_ctx[NR_CPU + */ + fastcall unsigned int do_IRQ(struct pt_regs *regs) + { +- /* high bits used in ret_from_ code */ +- int irq = regs->orig_eax & 0xff; ++ /* high bit used in ret_from_ code */ ++ int irq = ~regs->orig_eax; + #ifdef CONFIG_4KSTACKS + union irq_ctx *curctx, *irqctx; + u32 *isp; +diff -pruN ../pristine-linux-2.6.16.13/arch/x86_64/kernel/entry.S ./arch/x86_64/kernel/entry.S +--- ../pristine-linux-2.6.16.13/arch/x86_64/kernel/entry.S 2006-05-02 22:38:44.000000000 +0100 ++++ ./arch/x86_64/kernel/entry.S 2006-05-04 17:41:49.000000000 +0100 +@@ -601,7 +601,7 @@ retint_kernel: + */ + .macro apicinterrupt num,func + INTR_FRAME +- pushq $\num-256 ++ pushq $~(\num) + CFI_ADJUST_CFA_OFFSET 8 + interrupt \func + jmp ret_from_intr +diff -pruN ../pristine-linux-2.6.16.13/arch/x86_64/kernel/irq.c ./arch/x86_64/kernel/irq.c +--- ../pristine-linux-2.6.16.13/arch/x86_64/kernel/irq.c 2006-05-02 22:38:44.000000000 +0100 ++++ ./arch/x86_64/kernel/irq.c 2006-05-04 17:41:49.000000000 +0100 +@@ -96,8 +96,8 @@ skip: + */ + asmlinkage unsigned int do_IRQ(struct pt_regs *regs) + { +- /* high bits used in ret_from_ code */ +- unsigned irq = regs->orig_rax & 0xff; ++ /* high bit used in ret_from_ code */ ++ unsigned irq = ~regs->orig_rax; + + exit_idle(); + irq_enter(); +diff -pruN ../pristine-linux-2.6.16.13/arch/x86_64/kernel/smp.c ./arch/x86_64/kernel/smp.c +--- ../pristine-linux-2.6.16.13/arch/x86_64/kernel/smp.c 2006-05-02 22:38:44.000000000 +0100 ++++ ./arch/x86_64/kernel/smp.c 2006-05-04 17:41:49.000000000 +0100 +@@ -135,10 +135,10 @@ asmlinkage void smp_invalidate_interrupt + + cpu = smp_processor_id(); + /* +- * orig_rax contains the interrupt vector - 256. ++ * orig_rax contains the negated interrupt vector. + * Use that to determine where the sender put the data. + */ +- sender = regs->orig_rax + 256 - INVALIDATE_TLB_VECTOR_START; ++ sender = ~regs->orig_rax - INVALIDATE_TLB_VECTOR_START; + f = &per_cpu(flush_state, sender); + + if (!cpu_isset(cpu, f->flush_cpumask)) +diff -pruN ../pristine-linux-2.6.16.13/include/asm-x86_64/hw_irq.h ./include/asm-x86_64/hw_irq.h +--- ../pristine-linux-2.6.16.13/include/asm-x86_64/hw_irq.h 2006-05-02 22:38:44.000000000 +0100 ++++ ./include/asm-x86_64/hw_irq.h 2006-05-04 17:41:49.000000000 +0100 +@@ -127,7 +127,7 @@ asmlinkage void IRQ_NAME(nr); \ + __asm__( \ + "\n.p2align\n" \ + "IRQ" #nr "_interrupt:\n\t" \ +- "push $" #nr "-256 ; " \ ++ "push $~(" #nr ") ; " \ + "jmp common_interrupt"); + + #if defined(CONFIG_X86_IO_APIC) diff --git a/patches/linux-2.6.16/xenoprof-generic.patch b/patches/linux-2.6.16.13/xenoprof-generic.patch similarity index 83% rename from patches/linux-2.6.16/xenoprof-generic.patch rename to patches/linux-2.6.16.13/xenoprof-generic.patch index fb52e4496b..61a7d33d60 100644 --- a/patches/linux-2.6.16/xenoprof-generic.patch +++ b/patches/linux-2.6.16.13/xenoprof-generic.patch @@ -1,6 +1,6 @@ -diff -pruN ../pristine-linux-2.6.16/drivers/oprofile/buffer_sync.c ./drivers/oprofile/buffer_sync.c ---- ../pristine-linux-2.6.16/drivers/oprofile/buffer_sync.c 2006-03-20 05:53:29.000000000 +0000 -+++ ./drivers/oprofile/buffer_sync.c 2006-04-03 15:53:05.000000000 +0100 +diff -pruN ../pristine-linux-2.6.16.13/drivers/oprofile/buffer_sync.c ./drivers/oprofile/buffer_sync.c +--- ../pristine-linux-2.6.16.13/drivers/oprofile/buffer_sync.c 2006-05-02 22:38:44.000000000 +0100 ++++ ./drivers/oprofile/buffer_sync.c 2006-05-04 17:41:51.000000000 +0100 @@ -6,6 +6,10 @@ * * @author John Levon @@ -89,9 +89,9 @@ diff -pruN ../pristine-linux-2.6.16/drivers/oprofile/buffer_sync.c ./drivers/opr if (state == sb_bt_start) { state = sb_bt_ignore; atomic_inc(&oprofile_stats.bt_lost_no_mapping); -diff -pruN ../pristine-linux-2.6.16/drivers/oprofile/cpu_buffer.c ./drivers/oprofile/cpu_buffer.c ---- ../pristine-linux-2.6.16/drivers/oprofile/cpu_buffer.c 2006-03-20 05:53:29.000000000 +0000 -+++ ./drivers/oprofile/cpu_buffer.c 2006-04-03 15:53:05.000000000 +0100 +diff -pruN ../pristine-linux-2.6.16.13/drivers/oprofile/cpu_buffer.c ./drivers/oprofile/cpu_buffer.c +--- ../pristine-linux-2.6.16.13/drivers/oprofile/cpu_buffer.c 2006-05-02 22:38:44.000000000 +0100 ++++ ./drivers/oprofile/cpu_buffer.c 2006-05-04 17:41:51.000000000 +0100 @@ -6,6 +6,10 @@ * * @author John Levon @@ -161,9 +161,9 @@ diff -pruN ../pristine-linux-2.6.16/drivers/oprofile/cpu_buffer.c ./drivers/opro /* notice a task switch */ if (cpu_buf->last_task != task) { cpu_buf->last_task = task; -diff -pruN ../pristine-linux-2.6.16/drivers/oprofile/cpu_buffer.h ./drivers/oprofile/cpu_buffer.h ---- ../pristine-linux-2.6.16/drivers/oprofile/cpu_buffer.h 2006-03-20 05:53:29.000000000 +0000 -+++ ./drivers/oprofile/cpu_buffer.h 2006-04-03 15:53:05.000000000 +0100 +diff -pruN ../pristine-linux-2.6.16.13/drivers/oprofile/cpu_buffer.h ./drivers/oprofile/cpu_buffer.h +--- ../pristine-linux-2.6.16.13/drivers/oprofile/cpu_buffer.h 2006-05-02 22:38:44.000000000 +0100 ++++ ./drivers/oprofile/cpu_buffer.h 2006-05-04 17:41:51.000000000 +0100 @@ -36,7 +36,7 @@ struct oprofile_cpu_buffer { volatile unsigned long tail_pos; unsigned long buffer_size; @@ -185,9 +185,9 @@ diff -pruN ../pristine-linux-2.6.16/drivers/oprofile/cpu_buffer.h ./drivers/opro +#define CPU_TRACE_BEGIN 3 #endif /* OPROFILE_CPU_BUFFER_H */ -diff -pruN ../pristine-linux-2.6.16/drivers/oprofile/event_buffer.h ./drivers/oprofile/event_buffer.h ---- ../pristine-linux-2.6.16/drivers/oprofile/event_buffer.h 2006-03-20 05:53:29.000000000 +0000 -+++ ./drivers/oprofile/event_buffer.h 2006-04-03 15:53:05.000000000 +0100 +diff -pruN ../pristine-linux-2.6.16.13/drivers/oprofile/event_buffer.h ./drivers/oprofile/event_buffer.h +--- ../pristine-linux-2.6.16.13/drivers/oprofile/event_buffer.h 2006-05-02 22:38:44.000000000 +0100 ++++ ./drivers/oprofile/event_buffer.h 2006-05-04 17:41:51.000000000 +0100 @@ -29,11 +29,12 @@ void wake_up_buffer_waiter(void); #define CPU_SWITCH_CODE 2 #define COOKIE_SWITCH_CODE 3 @@ -202,9 +202,9 @@ diff -pruN ../pristine-linux-2.6.16/drivers/oprofile/event_buffer.h ./drivers/op #define INVALID_COOKIE ~0UL #define NO_COOKIE 0UL -diff -pruN ../pristine-linux-2.6.16/drivers/oprofile/oprof.c ./drivers/oprofile/oprof.c ---- ../pristine-linux-2.6.16/drivers/oprofile/oprof.c 2006-03-20 05:53:29.000000000 +0000 -+++ ./drivers/oprofile/oprof.c 2006-04-03 15:53:05.000000000 +0100 +diff -pruN ../pristine-linux-2.6.16.13/drivers/oprofile/oprof.c ./drivers/oprofile/oprof.c +--- ../pristine-linux-2.6.16.13/drivers/oprofile/oprof.c 2006-05-02 22:38:44.000000000 +0100 ++++ ./drivers/oprofile/oprof.c 2006-05-04 17:41:51.000000000 +0100 @@ -5,6 +5,10 @@ * @remark Read the file COPYING * @@ -243,9 +243,9 @@ diff -pruN ../pristine-linux-2.6.16/drivers/oprofile/oprof.c ./drivers/oprofile/ int oprofile_setup(void) { int err; -diff -pruN ../pristine-linux-2.6.16/drivers/oprofile/oprof.h ./drivers/oprofile/oprof.h ---- ../pristine-linux-2.6.16/drivers/oprofile/oprof.h 2006-03-20 05:53:29.000000000 +0000 -+++ ./drivers/oprofile/oprof.h 2006-04-03 15:53:05.000000000 +0100 +diff -pruN ../pristine-linux-2.6.16.13/drivers/oprofile/oprof.h ./drivers/oprofile/oprof.h +--- ../pristine-linux-2.6.16.13/drivers/oprofile/oprof.h 2006-05-02 22:38:44.000000000 +0100 ++++ ./drivers/oprofile/oprof.h 2006-05-04 17:41:51.000000000 +0100 @@ -35,5 +35,7 @@ void oprofile_create_files(struct super_ void oprofile_timer_init(struct oprofile_operations * ops); @@ -254,9 +254,9 @@ diff -pruN ../pristine-linux-2.6.16/drivers/oprofile/oprof.h ./drivers/oprofile/ +int oprofile_set_active(void); #endif /* OPROF_H */ -diff -pruN ../pristine-linux-2.6.16/drivers/oprofile/oprofile_files.c ./drivers/oprofile/oprofile_files.c ---- ../pristine-linux-2.6.16/drivers/oprofile/oprofile_files.c 2006-03-20 05:53:29.000000000 +0000 -+++ ./drivers/oprofile/oprofile_files.c 2006-04-03 15:53:05.000000000 +0100 +diff -pruN ../pristine-linux-2.6.16.13/drivers/oprofile/oprofile_files.c ./drivers/oprofile/oprofile_files.c +--- ../pristine-linux-2.6.16.13/drivers/oprofile/oprofile_files.c 2006-05-02 22:38:44.000000000 +0100 ++++ ./drivers/oprofile/oprofile_files.c 2006-05-04 17:41:51.000000000 +0100 @@ -5,15 +5,21 @@ * @remark Read the file COPYING * @@ -361,9 +361,9 @@ diff -pruN ../pristine-linux-2.6.16/drivers/oprofile/oprofile_files.c ./drivers/ oprofilefs_create_file(sb, root, "buffer", &event_buffer_fops); oprofilefs_create_ulong(sb, root, "buffer_size", &fs_buffer_size); oprofilefs_create_ulong(sb, root, "buffer_watershed", &fs_buffer_watershed); -diff -pruN ../pristine-linux-2.6.16/include/linux/oprofile.h ./include/linux/oprofile.h ---- ../pristine-linux-2.6.16/include/linux/oprofile.h 2006-03-20 05:53:29.000000000 +0000 -+++ ./include/linux/oprofile.h 2006-04-03 15:53:05.000000000 +0100 +diff -pruN ../pristine-linux-2.6.16.13/include/linux/oprofile.h ./include/linux/oprofile.h +--- ../pristine-linux-2.6.16.13/include/linux/oprofile.h 2006-05-02 22:38:44.000000000 +0100 ++++ ./include/linux/oprofile.h 2006-05-04 17:41:51.000000000 +0100 @@ -16,6 +16,8 @@ #include #include diff --git a/patches/linux-2.6.16/x86-increase-interrupt-vector-range.patch b/patches/linux-2.6.16/x86-increase-interrupt-vector-range.patch deleted file mode 100644 index c79abfc274..0000000000 --- a/patches/linux-2.6.16/x86-increase-interrupt-vector-range.patch +++ /dev/null @@ -1,107 +0,0 @@ -Subject: Increase x86 interrupt vector range - -Remove the limit of 256 interrupt vectors by changing the value -stored in orig_{e,r}ax to be the negated interrupt vector. -The orig_{e,r}ax needs to be < 0 to allow the signal code to -distinguish between return from interrupt and return from syscall. -With this change applied, NR_IRQS can be > 256. - -Signed-off-by: Christian Limpach ---- - arch/i386/kernel/entry.S | 4 ++-- - arch/i386/kernel/irq.c | 4 ++-- - arch/x86_64/kernel/entry.S | 2 +- - arch/x86_64/kernel/irq.c | 4 ++-- - arch/x86_64/kernel/smp.c | 4 ++-- - include/asm-x86_64/hw_irq.h | 2 +- - 6 files changed, 10 insertions(+), 10 deletions(-) - -diff -r 7d239c83edea arch/i386/kernel/entry.S ---- a/arch/i386/kernel/entry.S Mon Mar 20 06:00:20 2006 +0000 -+++ b/arch/i386/kernel/entry.S Fri Mar 31 17:01:35 2006 +0100 -@@ -406,7 +406,7 @@ ENTRY(irq_entries_start) - ENTRY(irq_entries_start) - .rept NR_IRQS - ALIGN --1: pushl $vector-256 -+1: pushl $~(vector) - jmp common_interrupt - .data - .long 1b -@@ -423,7 +423,7 @@ common_interrupt: - - #define BUILD_INTERRUPT(name, nr) \ - ENTRY(name) \ -- pushl $nr-256; \ -+ pushl $~(nr); \ - SAVE_ALL \ - movl %esp,%eax; \ - call smp_/**/name; \ -diff -r 7d239c83edea arch/i386/kernel/irq.c ---- a/arch/i386/kernel/irq.c Mon Mar 20 06:00:20 2006 +0000 -+++ b/arch/i386/kernel/irq.c Fri Mar 31 17:01:35 2006 +0100 -@@ -53,8 +53,8 @@ static union irq_ctx *softirq_ctx[NR_CPU - */ - fastcall unsigned int do_IRQ(struct pt_regs *regs) - { -- /* high bits used in ret_from_ code */ -- int irq = regs->orig_eax & 0xff; -+ /* high bit used in ret_from_ code */ -+ int irq = ~regs->orig_eax; - #ifdef CONFIG_4KSTACKS - union irq_ctx *curctx, *irqctx; - u32 *isp; -diff -r 7d239c83edea arch/x86_64/kernel/entry.S ---- a/arch/x86_64/kernel/entry.S Mon Mar 20 06:00:20 2006 +0000 -+++ b/arch/x86_64/kernel/entry.S Fri Mar 31 17:01:35 2006 +0100 -@@ -609,7 +609,7 @@ retint_kernel: - */ - .macro apicinterrupt num,func - INTR_FRAME -- pushq $\num-256 -+ pushq $~(\num) - CFI_ADJUST_CFA_OFFSET 8 - interrupt \func - jmp ret_from_intr -diff -r 7d239c83edea arch/x86_64/kernel/irq.c ---- a/arch/x86_64/kernel/irq.c Mon Mar 20 06:00:20 2006 +0000 -+++ b/arch/x86_64/kernel/irq.c Fri Mar 31 17:01:35 2006 +0100 -@@ -96,8 +96,8 @@ skip: - */ - asmlinkage unsigned int do_IRQ(struct pt_regs *regs) - { -- /* high bits used in ret_from_ code */ -- unsigned irq = regs->orig_rax & 0xff; -+ /* high bit used in ret_from_ code */ -+ unsigned irq = ~regs->orig_rax; - - exit_idle(); - irq_enter(); -diff -r 7d239c83edea arch/x86_64/kernel/smp.c ---- a/arch/x86_64/kernel/smp.c Mon Mar 20 06:00:20 2006 +0000 -+++ b/arch/x86_64/kernel/smp.c Fri Mar 31 17:01:35 2006 +0100 -@@ -135,10 +135,10 @@ asmlinkage void smp_invalidate_interrupt - - cpu = smp_processor_id(); - /* -- * orig_rax contains the interrupt vector - 256. -+ * orig_rax contains the negated interrupt vector. - * Use that to determine where the sender put the data. - */ -- sender = regs->orig_rax + 256 - INVALIDATE_TLB_VECTOR_START; -+ sender = ~regs->orig_rax - INVALIDATE_TLB_VECTOR_START; - f = &per_cpu(flush_state, sender); - - if (!cpu_isset(cpu, f->flush_cpumask)) -diff -r 7d239c83edea include/asm-x86_64/hw_irq.h ---- a/include/asm-x86_64/hw_irq.h Mon Mar 20 06:00:20 2006 +0000 -+++ b/include/asm-x86_64/hw_irq.h Fri Mar 31 17:01:35 2006 +0100 -@@ -127,7 +127,7 @@ __asm__( \ - __asm__( \ - "\n.p2align\n" \ - "IRQ" #nr "_interrupt:\n\t" \ -- "push $" #nr "-256 ; " \ -+ "push $~(" #nr ") ; " \ - "jmp common_interrupt"); - - #if defined(CONFIG_X86_IO_APIC) -- 2.30.2